﻿Imports System.IO

Public MustInherit Class MediaFileBase
    Implements IMediaFile

#Region "Fields"
    Private _FileSize As FileSize
    Public Overridable ReadOnly Property FileSize() As FileSize Implements IMediaFile.FileSize
        Get
            Throw New NotImplementedException()
        End Get
    End Property

    Private _Location As Uri
    Public Overridable ReadOnly Property Location() As System.Uri Implements IMediaFile.Location
        Get
            Throw New NotImplementedException()
        End Get
    End Property

    Private _FileType As MediaFileType
    Public Overridable ReadOnly Property FileType() As MediaFileType Implements IMediaFile.FileType
        Get
            Return _FileType
        End Get
    End Property

    Private _Creator As IList(Of IMediaFileCreator)
    Public Overridable ReadOnly Property Creator() As IList(Of IMediaFileCreator) Implements IMediaFile.Creators
        Get
            Return _Creator
        End Get
    End Property
#End Region

#Region "Constructors"
    Public Sub New(ByVal Source As Uri)
        If Source Is Nothing Then Throw New InvalidParameterException("Source must be defined")
        Throw New NotImplementedException
    End Sub

    Public Sub New(ByVal Source As String)
        If Source = String.Empty Then Throw New InvalidParameterException("Source must be defined and cannot be empty string")
        _Location = New System.Uri(Source)

        Throw New NotImplementedException
    End Sub

    Public Sub New(ByVal Source As FileInfo)
        If Source Is Nothing Then Throw New InvalidParameterException("Source must be defined")
        Throw New NotImplementedException
    End Sub

#End Region
End Class
